Source:NetHack 3.1.0/unixconf.h
Below is the full text to unixconf.h from the source code of NetHack 3.1.0. To link to a particular line, write [[NetHack 3.1.0/unixconf.h#line123]], for example. Warning! This is the source code from an old release. For the latest release, see Source code 1. /* SCCS Id: @(#)unixconf.h 3.1 90/22/02 */ 2. /* Copyright © Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #ifdef UNIX 6. #ifndef UNIXCONF_H 7. #define UNIXCONF_H 8. 9. /* 10. * Some include files are in a different place under SYSV 11. * BSD SYSV 12. * 13. * 14. * 15. * Some routines are called differently 16. * index strchr 17. * rindex strrchr 18. * 19. */ 20. 21. /* define exactly one of the following four choices */ 22. #define BSD /* define for 4.n BSD */ 23. /* also for relatives like SunOS and DG/UX */ 24. /* #define ULTRIX /* define for Ultrix v3.0 or higher (but not lower) */ 25. /* Use BSD for < v3.0 */ 26. /* "ULTRIX" not to be confused with "ultrix" */ 27. /* #define SYSV /* define for System V */ 28. /* #define HPUX /* Hewlett-Packard's Unix, version 6.5 or higher */ 29. /* use SYSV for < v6.5 */ 30. 31. 32. /* define any of the following that are appropriate */ 33. /* #define SVR4 /* use in addition to SYSV for System V Release 4 */ 34. #define NETWORK /* if running on a networked system */ 35. /* e.g. Suns sharing a playground through NFS */ 36. #define SUNOS4 /* SunOS 4.x */ 37. /* #define GENIX /* Yet Another Unix Clone */ 38. /* #define HISX /* Bull Unix for XPS Machines */ 39. /* #define BOS /* Bull Open Software - Unix for DPX/2 Machines */ 40. /* #define UNIXPC /* use in addition to SYSV for AT&T 7300/3B1 */ 41. /* #define AIX_31 /* In AIX 3.1 (IBM RS/6000) use BSD ioctl's to gain 42. job control (note that AIX is SYSV otherwise) */ 43. /* #define TEXTCOLOR /* Use System V r3.2 terminfo color support */ 44. /* or ANSI color support on termcap systems */ 45. /* or X11 color */ 46. /* #define POSIX_JOB_CONTROL /* use System V POSIX job control */ 47. /* #define POSIX_TYPES /* use POSIX types for system calls and termios */ 48. 49. 50. /* #define OPENWINBUG /* avoid a problem using OpenWindows 3.0 for X11 51. on SunOS 4.1.x, x>= 2 */ 52. /* #define PYRAMID_BUG /* avoid a bug on the Pyramid */ 53. /* #define BSD_43_BUG /* for real 4.3BSD cc's without schain botch fix */ 54. /* #define MICROPORT_BUG /* problems with large arrays in structs */ 55. /* #define MICROPORT_286_BUG /* Changes needed in termcap.c to get it to 56. run with Microport Sys V/AT version 2.4. 57. By Jay Maynard */ 58. /* #define AIXPS_2BUG /* avoid a problem with little_to_big() optimization */ 59. 60. /* #define RANDOM /* if neither random/srandom nor lrand48/srand48 61. is available from your system */ 62. 63. /* #define SYSV386MUSIC /* Play real music through speaker on systems with 64. music driver installed */ 65. 66. 67. /* 68. * The next two defines are intended mainly for the Andrew File System, 69. * which does not allow hard links. If NO_FILE_LINKS is defined, lock files 70. * will be created in LOCKDIR using open() instead of in the playground using 71. * link(). 72. * Ralf Brown, 7/26/89 (from v2.3 hack of 10/10/88) 73. */ 74. 75. /* #define NO_FILE_LINKS /* if no hard links */ 76. /* #define LOCKDIR "/usr/games/lib/nethackdir" /* where to put locks */ 77. 78. 79. /* 80. * Define DEF_PAGER as your default pager, e.g. "/bin/cat" or "/usr/ucb/more" 81. * If defined, it can be overridden by the environment variable PAGER. 82. * Hack will use its internal pager if DEF_PAGER is not defined. 83. * (This might be preferable for security reasons.) 84. * #define DEF_PAGER ".../mydir/mypager" 85. */ 86. 87. 88. 89. /* 90. * Define PORT_HELP to be the name of the port-specfic help file. 91. * This file is found in HACKDIR. 92. * Normally, you shouldn't need to change this. 93. * There is currently no port-specific help for Unix systems. 94. */ 95. /* #define PORT_HELP "Unixhelp" */ 96. 97. /* 98. * If you define MAIL, then the player will be notified of new mail 99. * when it arrives. If you also define DEF_MAILREADER then this will 100. * be the default mail reader, and can be overridden by the environment 101. * variable MAILREADER; otherwise an internal pager will be used. 102. * A stat system call is done on the mailbox every MAILCKFREQ moves. 103. */ 104. 105. #define MAIL /* Deliver mail during the game */ 106. 107. /* The Andrew Message System does mail a little differently from normal 108. * UNIX. Mail is deposited in the user's own directory in ~/Mailbox 109. * (another directory). MAILBOX is the element that will be added on to 110. * the user's home directory path to generate the Mailbox path - just in 111. * case other Andrew sites do it differently from CMU. 112. * 113. * dan lovinger 114. * dl2n+@andrew.cmu.edu (dec 19 1989) 115. */ 116. 117. /* #define AMS /* use Andrew message system for mail */ 118. 119. /* NO_MAILREADER is for kerberos authentcating filesystems where it is 120. * essentially impossible to securely exec child processes, like mail 121. * readers, when the game is running under a special token. 122. * 123. * dan 124. */ 125. 126. /* #define NO_MAILREADER /* have mail daemon just tell player of mail */ 127. 128. #ifdef MAIL 129. # if defined(BSD) || defined(ULTRIX) 130. # ifdef AMS 131. #define AMS_MAILBOX "/Mailbox" 132. # else 133. #define DEF_MAILREADER "/usr/ucb/Mail" 134. # endif 135. #else 136. # if defined(SYSV) || defined(DGUX) || defined(HPUX) 137. # ifdef M_XENIX 138. #define DEF_MAILREADER "/usr/bin/mail" 139. # else 140. #define DEF_MAILREADER "/usr/bin/mailx" 141. # endif 142. # else 143. #define DEF_MAILREADER "/bin/mail" 144. # endif 145. #endif 146. 147. #define MAILCKFREQ 50 148. #endif /* MAIL */ 149. 150. 151. 152. #ifdef COMPRESS 153. /* Some implementations of compress need a 'quiet' option. 154. * If you've got one of these versions, put -q here. 155. * You can also include any other strange options your compress needs. 156. * If you have a normal compress, just leave it commented out. 157. */ 158. /* #define COMPRESS_OPTIONS "-q" /* */ 159. #endif 160. 161. #define FCMASK 0660 /* file creation mask */ 162. 163. 164. /* 165. * The remainder of the file should not need to be changed. 166. */ 167. 168. #ifdef _AUX_SOURCE 169. # ifdef AUX /* gcc ? */ 170. # define _SYSV_SOURCE 171. # define _BSD_SOURCE 172. #else 173. # define AUX 174. # endif 175. #endif /* _AUX_SOURCE */ 176. 177. /* 178. * BSD/ULTRIX systems are normally the only ones that can suspend processes. 179. * Suspending NetHack processes cleanly should be easy to add to other systems 180. * that have SIGTSTP in the Berkeley sense. Currently the only such systems 181. * known to work are HPUX and AIX 3.1; other systems will probably require 182. * tweaks to unixtty.c and ioctl.c. 183. * 184. * POSIX defines a slightly different type of job control, which should be 185. * equivalent for NetHack's purposes. POSIX_JOB_CONTROL should work on 186. * various recent SYSV versions (with possibly tweaks to unixtty.c again). 187. */ 188. #ifndef POSIX_JOB_CONTROL 189. # if defined(BSD) || defined(ULTRIX) || defined(HPUX) || defined(AIX_31) 190. # define BSD_JOB_CONTROL 191. # else 192. # if defined(SVR4) 193. # define POSIX_JOB_CONTROL 194. # endif 195. # endif 196. #endif 197. #if defined(BSD_JOB_CONTROL) || defined(POSIX_JOB_CONTROL) || defined(AUX) 198. #define SUSPEND /* let ^Z suspend the game */ 199. #endif 200. 201. 202. #if defined(BSD) || defined(ULTRIX) 203. #include 204. #else 205. #include 206. #endif 207. 208. #define HLOCK "perm" /* an empty file used for locking purposes */ 209. 210. #ifndef REDO 211. #define Getchar nhgetch 212. #endif 213. #define tgetch getchar 214. 215. #define SHELL /* do not delete the '!' command */ 216. 217. #include "system.h" 218. 219. #if defined(BSD) || defined(ULTRIX) 220. # if !defined(DGUX) && !defined(SUNOS4) 221. #define memcpy(d, s, n) bcopy(s, d, n) 222. #define memcmp(s1, s2, n) bcmp(s2, s1, n) 223. # endif 224. #else /* therefore SYSV */ 225. #define index strchr 226. #define rindex strrchr 227. #endif 228. 229. /* A safety check for BOS and AUX */ 230. #if (defined(BOS) || defined(AUX)) && defined(NHSTDC) 231. # if defined(VISION_TABLES) && defined(BRACES) 232. # undef BRACES 233. # endif 234. #endif 235. 236. /* Use the high quality random number routines. */ 237. #if defined(BSD) || defined(ULTRIX) || defined(RANDOM) 238. #define Rand() random() 239. #else 240. #define Rand() lrand48() 241. #endif 242. 243. #ifdef hc /* older versions of the MetaWare High-C compiler define this */ 244. # ifdef __HC__ 245. # undef __HC__ 246. # endif 247. # define __HC__ hc 248. # undef hc 249. #endif 250. 251. #endif /* UNIXCONF_H */ 252. #endif /* UNIX */ unixconf.h